Для более подробного знакомства читайте . Краткая идея в том, чтобы приспособить к использованию класс, который не имеет стандартного интерфейса. То есть он реализован без Ваших абстрактных классов, а очень хочется его использовать вместе со всеми, например, используя паттерн Строитель.
using System;
abstract class Prototipe
{
abstract public void Open();
}
class cADO:Prototipe
{
override public void Open()
{
Console.WriteLine("Open ADO");
}
}
class cDao
{
public void OpenTable()
{
Console.WriteLine("Open DAO");
}
}
class CDao:Prototipe
{
override public void Open()
{
cd.OpenTable();
}
private cDao cd=new cDao();
}
class MainClass
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
Класс cDao у нас не имеет стандартного интерфейса в виде абстрактного класса Prototipe. Мы создали новый класс CDao на основе стандартного интерфейса и использовали класс cDao для непосредственной реализации функций.